package test;

/**
 * @author 郝文雪
 * @date 2022/9/1 20:36
 * @Description Test
 */
public class bilili3 {
    public int[][] snake_matrix (int n) {
        // write code here
        int top=0;
        int bottom=n-1;
        int left=0;
        int right=n-1;
        int[][] arr=new int[n][n];
        int ret=1;
        while(top<(n+1)/2 && left<(n+1)/2){
            //从上到下
            for(int i=top;i<=bottom;i++){
                arr[top][i]=ret++;
            }

            //从左到右
            for(int i=left+1;i<=right;i++){
                arr[bottom][i]=ret++;
            }
            //从下到上
            for(int i=bottom-1;left!=right&&i>=top+1;i--){
                arr[i][right]=ret++;
            }
            //从右到左
            for(int i=right-1;top!=bottom&&i>=left;i--){
                arr[top][i]=ret++;
            }
            ++top;
            ++left;
            --bottom;
            --right;
        }
        return arr;
    }
}
